package com.qf.param.DTO;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;

import java.math.BigDecimal;
import javax.validation.constraints.*;
/**
 * @Author Ayases
 * @Date 2025/6/12 09:30
 * @Desc
 */


@Data
public class ProductAddDTO {
    @NotBlank(message = "货号不能为空")
    @Size(max = 64, message = "货号长度不能超过64个字符")
    private String sku;                 // 唯一货号

    @NotBlank(message = "商品名称不能为空")
    @Size(max = 255, message = "商品名称长度不能超过255个字符")
    private String name;                // 商品名称

    @NotNull(message = "商品价格不能为空")
    @DecimalMin(value = "0.01", message = "商品价格必须大于0")
    @Digits(integer = 8, fraction = 2, message = "商品价格格式无效")
    private BigDecimal price;           // 商品价格

    @NotBlank(message = "商品分类不能为空")
    @Size(max = 100, message = "商品分类长度不能超过100个字符")
    private String category;            // 商品分类

    @Size(max = 2000, message = "商品描述长度不能超过2000个字符")
    private String description;         // 商品描述

    @NotNull(message = "商品图片不能为空")
    @Size(min = 1, max = 5, message = "至少上传1张图片，最多5张")
    private MultipartFile[] imageUrls;  // 图片地址

    @NotNull(message = "库存数量不能为空")
    @Min(value = 0, message = "库存数量不能小于0")
    private Integer stock;              // 库存数量

    //private Integer sales;              // 销售数量(考虑到新增商品是没有销量的，所以注释掉)

    @NotNull(message = "商品状态不能为空")
    @Min(value = 1, message = "商品状态值无效（1=上架, 2=下架）")
    @Max(value = 2, message = "商品状态值无效（1=上架, 2=下架）")
    private Integer status;             // 状态(1上架 2下架)
}
